﻿/*
* Client Validation: http://www.codeproject.com/Articles/275056/Custom-Client-Side-Validation-in-ASP-NET-MVC3
* Đăng ký hàm để validate trên client
* Hàm validate nhận 3 tham số:
* 1. The first parameter to the function will contain the input value (like the date of birth textbox value).
* 2. The second parameter is the input element containing the value to validate (in case the value itself doesn’t provide enough information).
* 3. The third parameter will contain all the validation parameters in an array. Tham số này được khởi tạo và truyền trong Attribute (C# code)
*/

/* RequireTrue */
jQuery.validator.addMethod("requiretrue",
function (value, element, param) {
    return $(element).attr('checked');
});

jQuery.validator.unobtrusive.adapters.add("requiretrue", ["param"], function (options) {
    options.rules["requiretrue"] = options.params.param;
    options.messages["requiretrue"] = options.message;
});

/* RequireDiffefent */
jQuery.validator.addMethod("requiredifferent",
function (value, element, param) {
    return value != param;
});

jQuery.validator.unobtrusive.adapters.add("requiredifferent", ["param"], function (options) {
    options.rules["requiredifferent"] = options.params.param;
    options.messages["requiredifferent"] = options.message;
});